/******************************************************
Cours:   LOG121
Session: A2013
Groupe:  
Projet: Laboratoire #3
etudiant(e)s: Simon Castro
			  Fredy Alexander 
			  Renaud Vincent
              
              
Professeur : 
Nom du fichier: Joueur.java
Date cree: 2013-10-20
Date dern. modif. 2013-10-23
*******************************************************
Historique des modifications
*******************************************************
2013-10-20 Version 1.0
2013-10-23 Version 1.1 Ajout des attributs
*******************************************************/  

package cadricielJeuDe;

/**
 * Classe decrivant un joueur. Celui-ci a un nom, commence avec un score de 0,
 * commence a 0 tours et pourra en jouer plus et peut etre actif ou non.
 * @author Renaud
 * @date 2013-10-20
 */
public class Joueur implements Comparable<Joueur> {

    private String nom;
    private int score = 0;
    private int nbrTours = 0;
    private boolean joueurActif = false;

    /**
     * Constructeur
     */
    public Joueur(String nom) {
    	this.nom = nom;
    }
    
    /*************
     * Accesseurs
     *************/
    public String getNom() {
    	return this.nom;
    }

    public int getScore() {
    	return score;
    }

	public int getNbrTours() {
		return nbrTours;
	}
	
	public boolean isJoueurActif() {
		return joueurActif;
	}
	
	/************
	 * Mutateurs
	 ************/
	public void setNbrTours(int nbrTours) {
		this.nbrTours = nbrTours;
	}

	public void setJoueurActif(boolean joueurActif) {
		this.joueurActif = joueurActif;
	}
	
	public void setScore(int score){
		this.score = score;
	}
	
	/**
	 * Methode qui additionne un score a celui deja existant dans la classe
	 * Joueur.
	 * @param nouvScore
	 */
	public void cumuleScore(int nouvScore){
		score = score + nouvScore;
	}

	/**
	 * Methode comparant un joueur avec le joueur actuel afin de determiner
	 * qui a le plus grand score.
	 * @param Un autre joueur
	 * @return -1 si le score du joueur actuel est plus petit, 1 si il est plus
	 * grand, 0 si les deux scores sont egaux.
	 */
	public int compareTo(Joueur autreJoueur) {
		if(this.score < autreJoueur.getScore())
			return -1;
		else if(this.score > autreJoueur.getScore())
			return 1;
		else
			return 0;
	}

	/*
	 * To-String
	 */
	public String toString() {
		return "Joueur [nom=" + nom + ", score=" + score + ", nbrTours="
				+ nbrTours + ", joueurActif=" + joueurActif + "]";
	}
}